home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / m2 / cat3src / magic / d / magicaes.d < prev    next >
Text File  |  1997-10-26  |  42KB  |  1,143 lines

  1. (*--------------------------------------------------------------------------*
  2.  *                                                                          *
  3.  *           MAGIC   Modula's  All purpose  GEM  Interface  Cadre           *
  4.  *                   ÿ         ÿ            ÿ    ÿ          ÿ               *
  5.  *--------------------------------------------------------------------------*
  6.  *  VERSION 3.20   18.01.1992      (C)90/91/92 by Peter Hellinger Software  *
  7.  *--------------------------------------------------------------------------*
  8.  *              Dieses Modul ist urheberrechtlich geschtzt.                *
  9.  *                                                                          *
  10.  * Die Ver”ffentlichung des Quelltextes oder Teilen daraus in schriftlicher *
  11.  * Form, insbesondere in Zeitschriften, sowie die Verbreitung ber Public-  *
  12.  * Domain-H„ndler bedarf der ausdrcklichen schriftlichen Genehmigung des   *
  13.  * Autors!                                                                  *
  14.  *                                                                          *
  15.  * Der Autor gibt hiermit die ausdrckliche Erlaubnis, das Modul jederzeit  *
  16.  * auch im Quelltext weiterzugegeben, sofern dessen Text und insbesondere   *
  17.  * dieser Urheberrechts-Vermerk nicht ver„ndert wird, und durch die Weiter- *
  18.  * gabe kein finanzieller Nutzen entsteht. Der Autor beh„lt sich das Recht  *
  19.  * vor, diese Erlaubnis jederzeit u. ohne Angaben von Grnden zu widerrufen *
  20.  *--------------------------------------------------------------------------*)
  21.  
  22. (*--------------------------------------------------------------------------*
  23.  * MagicAES     Application Environment Services        Modula-2 Interface  *
  24.  *--------------------------------------------------------------------------*)
  25.  
  26. DEFINITION MODULE MagicAES;
  27.  
  28. FROM MagicSys   IMPORT  Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
  29.                         Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
  30.                         Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
  31.                         sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
  32.  
  33.  
  34.  
  35.  
  36.  
  37. IMPORT SYSTEM;
  38.  
  39. CONST   MouseLeft =     Bit0;   (* Maustasten *)
  40.         MouseRight =    Bit1;
  41.  
  42. TYPE    AESGLOBAL =     RECORD
  43.                          apVersion:     sCARDINAL;
  44.                          apCount:       sINTEGER;
  45.                          apId:          sCARDINAL;
  46.                          apPprivate:    lCARDINAL;
  47.                          apPtree:       SYSTEM.ADDRESS;
  48.                          apPmem:        SYSTEM.ADDRESS;
  49.                          apLmem:        sCARDINAL;
  50.                          apNplanes:     sCARDINAL;
  51.                          Reserved1:     sCARDINAL;
  52.                          Reserved2:     sCARDINAL;
  53.                          apBvdisk:      sBITSET;
  54.                          apBvhard:      sBITSET;
  55.                         END;
  56.  
  57. TYPE    tControl =      RECORD
  58.                          opcode:        sINTEGER;
  59.                          sizeIntIn:     sINTEGER;
  60.                          sizeIntOut:    sINTEGER;
  61.                          sizeAddrIn:    sINTEGER;
  62.                          sizeAddrOut:   sINTEGER;
  63.                         END;
  64.  
  65. TYPE    tIntIn =        ARRAY [0..16] OF sINTEGER;
  66.         tIntOut =       ARRAY [0.. 7] OF sINTEGER;
  67.         tAddrIn =       ARRAY [0.. 2] OF SYSTEM.ADDRESS;
  68.         tAddrOut =      ARRAY [0.. 1] OF SYSTEM.ADDRESS;
  69.  
  70. VAR     AESControl:     tControl;
  71.         AESGlobal:      AESGLOBAL;
  72.         AESIntIn:       tIntIn;
  73.         AESIntOut:      tIntOut;
  74.         AESAddrIn:      tAddrIn;
  75.         AESAddrOut:     tAddrOut;
  76.  
  77. VAR     AESPB:          RECORD
  78.                          cbControl:     POINTER TO tControl;
  79.                          cbPglobal:     POINTER TO AESGLOBAL;
  80.                          cbPintin:      POINTER TO tIntIn;
  81.                          cbPintout:     POINTER TO tIntOut;
  82.                          cbPadrin:      POINTER TO tAddrIn;
  83.                          cbPadrout:     POINTER TO tAddrOut;
  84.                         END;
  85.  
  86. VAR     CallResult:  sINTEGER;
  87.         (* Enth„lt nach einem AESCall den eventuellen Fehlercode *)
  88.         
  89.         hasAgi:      BOOLEAN;
  90.         (* Gibt an, ob appl_getinfo m”glich ist. Muž extern gesetzt
  91.          * werden, da man es erst nach appl_init abfragen kann
  92.          *)
  93.  
  94. PROCEDURE AESCall (op, c1, c2, c3, c4: sINTEGER): sINTEGER;
  95.  
  96.  
  97. (*-- AES-Objc --------------------------------------------------------*)
  98.  
  99. CONST   GBOX =          20;
  100.         GTEXT =         21;
  101.         GBOXTEXT =      22;
  102.         GIMAGE =        23;
  103.         GPROGDEF =      24;
  104.         GIBOX =         25;
  105.         GBUTTON =       26;
  106.         GBOXCHAR =      27;
  107.         GSTRING =       28;
  108.         GFTEXT =        29;
  109.         GFBOXTEXT =     30;
  110.         GICON =         31;
  111.         GTITLE =        32;
  112.         GCICON =        33;
  113.  
  114. CONST   SELECTABLE =    Bit0;
  115.         DEFAULT =       Bit1;
  116.         Exit =          Bit2;   (* EXIT ist reserviertes Wort... *)
  117.         EDITABLE =      Bit3;
  118.         RBUTTON =       Bit4;
  119.         LASTOB =        Bit5;
  120.         TOUCHEXIT =     Bit6;
  121.         HIDETREE =      Bit7;
  122.         INDIRECT =      Bit8;
  123.         FL3DIND =       Bit9;
  124.         FL3DBAK =       Bit10;
  125.  
  126. CONST   SELECTED =      Bit0;
  127.         CROSSED =       Bit1;
  128.         CHECKED =       Bit2;
  129.         DISABLED =      Bit3;
  130.         OUTLINED =      Bit4;
  131.         SHADOWED =      Bit5;
  132.         DRAW3D =        Bit6;
  133.         WHITEBAK =      Bit7;
  134.                         
  135. CONST   WHITE =          0;     (* Farben *)
  136.         BLACK =          1;
  137.         RED =            2;
  138.         GREEN  =         3;
  139.         BLUE  =          4;
  140.         CYAN  =          5;
  141.         YELLOW  =        6;
  142.         MAGENTA  =       7;
  143.         LWITHE =         8;
  144.         LBLACK  =        9;
  145.         LRED =          10;
  146.         LGREEN =        11;
  147.         LBLUE =         12;
  148.         LCYAN =         13;
  149.         LYELLOW =       14;
  150.         LMAGENTA =      15;
  151.  
  152. TYPE    BoxInfo =       RECORD
  153.                          char:  CHAR;   (* Bit 24..31 *)
  154.                          frame: CHAR;   (* Bit 16..23 *)
  155.                          flags: sBITSET; (* Bit0..Bit3:   Innenfarbe (0..15)
  156.                                           * Bit4..Bit6:   Raster
  157.                                           * Bit7:         Text transparent oder deckend
  158.                                           * Bit8..Bit11:  Textfarbe
  159.                                           * Bit12..Bit15: Rahmenfarbe
  160.                                           *)
  161.                         END;           
  162.  
  163. TYPE    PtrSTRING =     POINTER TO ARRAY [0..255] OF CHAR;
  164.  
  165. CONST   (* Ab AES V 4.1 *)
  166.         GDOS_PROP       = 0; (* Speedo GDOS font *)
  167.         GDOS_MONO       = 1; (* Speedo GDOS font, force monospace output *)
  168.         GDOS_BITM       = 2; (* GDOS bit map font *)
  169.         IBM             = 3; (* System font *)
  170.         SMALL           = 5; (* Small system font *)
  171.  
  172. TYPE    PtrTEDINFO =    POINTER TO TEDINFO;
  173.         TEDINFO =       RECORD
  174.                          tePtext:     POINTER TO ARRAY [0..255] OF CHAR;
  175.                          tePtmplt:    POINTER TO ARRAY [0..255] OF CHAR;
  176.                          tePvalid:    POINTER TO ARRAY [0..255] OF CHAR;
  177.                          teFont:      sINTEGER;
  178.                          teFontid:    sINTEGER; (* erst ab AES 4.1, vorher reserved *)
  179.                          teJust:      sINTEGER;
  180.                          teColor:     sINTEGER;
  181.                          teFontsize:  sINTEGER; (* erst ab AES 4.1, vorher reserved *)
  182.                          teThickness: sINTEGER;
  183.                          teTxtlen:    sINTEGER;
  184.                          teTmplen:    sINTEGER;
  185.                         END;
  186.  
  187. TYPE    PtrBITBLK =     POINTER TO BITBLK;
  188.         BITBLK =        RECORD
  189.                          biData:  SYSTEM.ADDRESS;
  190.                          biWb:    sINTEGER;
  191.                          biHl:    sINTEGER;
  192.                          biX:     sINTEGER;
  193.                          biY:     sINTEGER;
  194.                          biColor: sINTEGER;
  195.                         END;    
  196.  
  197. TYPE    PtrPARMBLK =    POINTER TO PARMBLK;
  198.         PARMBLK =       RECORD
  199.                          pbTree:      SYSTEM.ADDRESS;
  200.                          pbObj:       sINTEGER;
  201.                          prPrevstate: sBITSET;
  202.                          prCurrstate: sBITSET;
  203.                          pbX:         sINTEGER;
  204.                          pbY:         sINTEGER;
  205.                          pbW:         sINTEGER;
  206.                          pbH:         sINTEGER;
  207.                          pbXc:        sINTEGER;
  208.                          pbYc:        sINTEGER;
  209.                          pbWc:        sINTEGER;
  210.                          pbHc:        sINTEGER;
  211.                          pbParm:      SYSTEM.ADDRESS;
  212.                         END;
  213.  
  214. TYPE    PtrUSERBLK =    POINTER TO USERBLK;
  215.         USERBLK =       RECORD
  216.                          ubCode: PROC;
  217.                          ubPara: PtrPARMBLK;
  218.                         END;
  219.  
  220. TYPE    PtrICONBLK =    POINTER TO ICONBLK;
  221.         ICONBLK =       RECORD
  222.                          ibPmask: SYSTEM.ADDRESS;
  223.                          ibPdata: SYSTEM.ADDRESS;
  224.                          ibPtext: POINTER TO ARRAY [0..255] OF CHAR;
  225.                          ibChar:  sINTEGER;
  226.                          ibXchar: sINTEGER;
  227.                          ibYchar: sINTEGER;
  228.                          ibXicon: sINTEGER;
  229.                          ibYicon: sINTEGER;
  230.                          ibWicon: sINTEGER;
  231.                          ibHicon: sINTEGER;
  232.                          ibXtext: sINTEGER;
  233.                          ibYtext: sINTEGER;
  234.                          ibWtext: sINTEGER;
  235.                          ibHtext: sINTEGER;
  236.                          (* ibResvd: sINTEGER; Existiert anscheinend nicht *)
  237.                         END;
  238.  
  239. TYPE    PtrCICON =      POINTER TO CICON;
  240.         CICON =         RECORD
  241.                          numplanes: sINTEGER;       (* number of planes in the following data *)
  242.                          coldata:   SYSTEM.ADDRESS; (* ADDRESS to color bitmap in standard form *)
  243.                          colmask:   SYSTEM.ADDRESS; (* ADDRESS to single plane mask of col_data *)
  244.                          seldata:   SYSTEM.ADDRESS; (* ADDRESS to color bitmap of selected icon *)
  245.                          selmask:   SYSTEM.ADDRESS; (* ADDRESS to single plane mask of selected icon *)
  246.                          nextres:   PtrCICON;       (* ADDRESS to next icon for a different resolution *)
  247.                         END;
  248.  
  249. TYPE    PtrCICONBLK =   POINTER TO CICONBLK;
  250.         CICONBLK =      RECORD
  251.                          mono:  ICONBLK;  (* default monochrome icon *)
  252.                          color: PtrCICON; (* list of color icons for different resolutions *)
  253.                         END;
  254.  
  255. TYPE    PtrObjcspec =   POINTER TO Objcspec;
  256.         Objcspec =      RECORD
  257.                          CASE : sCARDINAL OF
  258.                           0: address:    SYSTEM.ADDRESS;|
  259.                           1: Box:        BoxInfo;|
  260.                              (* Kein Pointer, steht direkt im Langwort! *)
  261.                           2: TedPtr:     PtrTEDINFO;|
  262.                           3: StringPtr:  PtrSTRING;|
  263.                           4: ImagePtr:   PtrBITBLK;|
  264.                           5: UserDefPtr: PtrUSERBLK;|
  265.                           6: IconPtr:    PtrICONBLK;|
  266.                           7: CiconPtr:   PtrCICONBLK;|
  267.                           8: obSpecPtr:  PtrObjcspec;|
  268.                          END;
  269.                         END;
  270.  
  271. TYPE    OBJECT = RECORD
  272.                   obNext:   sINTEGER;
  273.                   obHead:   sINTEGER;
  274.                   obTail:   sINTEGER;
  275.                   obType:   sINTEGER;
  276.                   obFlags:  sBITSET;
  277.                   obState:  sBITSET;
  278.                   obSpec:   Objcspec;
  279.                   obX:      sINTEGER;
  280.                   obY:      sINTEGER;
  281.                   obWidth:  sINTEGER;
  282.                   obHeight: sINTEGER;
  283.                  END;
  284.  
  285.  
  286. (* Ab AES 4.0 *)
  287. CONST 
  288.         LK3DIND     = 1;
  289.         LK3DACT     = 2;
  290.         INDBUTCOL   = 3;
  291.         ACTBUTCOL   = 4;
  292.         BACKGRCOL   = 5;
  293.         AD3DVALUE   = 6;
  294.  
  295. PROCEDURE ObjcSysvar (obSmode, obSwhich, obSival1, obSival2 : INTEGER; 
  296.                       VAR obSoval1, obSoval2 : INTEGER): INTEGER;
  297.  
  298. (* immer vorhanden *)
  299. PROCEDURE ObjcAdd    (tree: SYSTEM.ADDRESS; parent, child: sINTEGER);
  300.  
  301. PROCEDURE ObjcDelete (tree: SYSTEM.ADDRESS; object: sINTEGER);
  302.  
  303. PROCEDURE ObjcDraw   (tree: SYSTEM.ADDRESS; start, depth: sINTEGER; pxy: ARRAY OF LOC);
  304.  
  305. PROCEDURE ObjcFind   (tree: SYSTEM.ADDRESS; start, depth, x, y: sINTEGER): sINTEGER;
  306.  
  307. PROCEDURE ObjcOffset (tree: SYSTEM.ADDRESS; object: sINTEGER; VAR x, y: sINTEGER);
  308.  
  309. PROCEDURE ObjcOrder  (tree: SYSTEM.ADDRESS; object, newpos: sINTEGER);
  310.  
  311. CONST   EDSTART =       0;
  312.         EDINIT =        1;
  313.         EDCHAR =        2;
  314.         EDEND =         3;
  315.  
  316. PROCEDURE ObjcEdit (tree: SYSTEM.ADDRESS; object: sINTEGER; VAR pos: sINTEGER;
  317.                     char, kind: sINTEGER);
  318.  
  319. PROCEDURE ObjcChange (tree: SYSTEM.ADDRESS; object: sINTEGER; pxy: ARRAY OF LOC;
  320.                       state: sBITSET; mode: sINTEGER);
  321.  
  322.  
  323. (*-- AES-Appl --------------------------------------------------------*)
  324.  
  325. CONST   Timer   =       Bit0;
  326.         Button =        Bit1;
  327.         Mouse =         Bit2;
  328.         Keyboard =      Bit3;
  329.  
  330.  
  331. TYPE    RecordEntry =   RECORD
  332.                          kind:  lBITSET;     (* Siehe Timer .. Keyboard *)
  333.                          event: lCARDINAL;
  334.                         END;
  335.                           
  336.  
  337. PROCEDURE ApplInit    (): sINTEGER;
  338.  
  339. PROCEDURE ApplRead    (id, len: sINTEGER; VAR pipe: ARRAY OF LOC);
  340.  
  341. PROCEDURE ApplWrite   (id, len: sINTEGER; VAR pipe: ARRAY OF LOC);
  342.  
  343. PROCEDURE ApplFind    (name: SYSTEM.ADDRESS): sINTEGER;
  344.  
  345. CONST    APFIRST     = 0;   (* Ersten Prozess suchen *)
  346.          APNEXT      = 1;   (* N„chsten Prozess suchen *)
  347.          APSHELL     = 2;   (* Nur nach System Shell suchen *)
  348.          
  349.          APTSYSTEM   = 1;   (* Returntype: System process *)
  350.          APTAPP      = 2;   (* Returntype: Application *)
  351.          APTACC      = 2;   (* Returntype: Accessory   *)
  352.  
  353. PROCEDURE ApplSearch (apSmode : sINTEGER; VAR apName : ARRAY OF CHAR; VAR apType, apId : sINTEGER) : BOOLEAN;
  354.  
  355. PROCEDURE ApplTplay   (num, speed: sINTEGER; VAR buffer: ARRAY OF LOC);
  356.  
  357. PROCEDURE ApplTrecord (count: sINTEGER; VAR buffer: ARRAY OF LOC): sINTEGER;
  358.  
  359. PROCEDURE ApplBvset   (disk, hard: sBITSET);
  360.  
  361. PROCEDURE ApplYield;
  362.  
  363. PROCEDURE ApplExit;
  364.  
  365. CONST   AEFONT  = 0;    (* Get AES regular font information
  366.                          * o1: font height, o2: font id, 
  367.                          * o3: font type: 0 - system font; 
  368.                          *     1 - fsm font; 
  369.                          *     2 and on to be defined in the future *)
  370.         AESMALL = 1;    (* Get AES small font information. see above *)
  371.         AECOLOR = 2;    (* Get AES current resolution number and the number
  372.                          * of color is being supported by the object library
  373.                          * o1: resolution number 
  374.                          * o2: number of color supported by AES object library 
  375.                          * o3: color icons: 0 - Not supported; 1 - supported 
  376.                          *)
  377.         AELANG  = 3;    (* o1: currently used language (see below) *)
  378.  
  379.         L_ENGLISH   = 0;    (* Konstanten fr die einzelnen Sprachen *)
  380.         L_GERMAN    = 1;
  381.         L_FRENCH    = 2;
  382.         L_SPANISH   = 4;
  383.         L_ITALIAN   = 5;
  384.         L_SWEDISH   = 6;
  385.         
  386.         AEGLOBAL1   = 4;   
  387.         (* Get general AES environment info #1 
  388.            ap_gout1 - 0 - non-pre-emptive multitasking
  389.                       1 - pre-emptive multitasking
  390.            ap_gout2 - 0 - appl_find cannot convert from MiNT to AES ids
  391.                   1 - extended appl_find modes supported
  392.            ap_gout3 - 0 - appl_search not implemented
  393.                   1 - appl_search implemented
  394.            ap_gout4 - 0 - rsrc_rcfix not implemented
  395.                   1 - rsrc_rcfix implemented
  396.         *)
  397.         
  398.         AEGLOBAL2   = 5;
  399.         (*
  400.         5 - General AES environment info #2
  401.  
  402.            ap_gout1 - 0 - objc_xfind not implemented
  403.                       1 - objc_xfind implemented
  404.            ap_gout2 - 0 - reserved, always 0
  405.            ap_gout3 - 0 - GEM/3 menu_click not implemented
  406.                   1 - menu_click implemented
  407.            ap_gout4 - 0 - GEM/3 shel_r/wdef not implemented
  408.                   1 - shel_r/wdef implemented
  409.         *)
  410.         
  411.         AEGLOBAL3   = 6;
  412.         (*
  413.         6 - General AES environment info #3
  414.  
  415.            ap_gout1 - 0 - appl_read(-1) not implemented
  416.                       1 - appl_read(-1) implemented
  417.            ap_gout2 - 0 - shel_get(-1) not implemented
  418.                   1 - shel_get(-1) implemented
  419.            ap_gout3 - 0 - menu_bar(-1) not implemented
  420.                   1 - menu_bar(-1) implemented
  421.            ap_gout4 - 0 - menu_bar(MENU_INSTL) not implemented
  422.                   1 - menu_bar(MENU_INSTL) implemented
  423.         *)
  424.         
  425.         AERESVD = 7;
  426.         
  427.         (*
  428.         7 - Reserved for OS extensions. MultiTOS sets
  429.             ap_gout1,2,3,4 to 0.
  430.         *)
  431.  
  432.         AEMOUSE = 8;
  433.         
  434.         (*
  435.         8 - Mouse support
  436.  
  437.            ap_gout1 - 0 - graf_mouse modes 258-260 not supported
  438.                       1 - graf_mouse modes 258-260 supported
  439.            ap_gout2 - 0 - application must maintain mouse form
  440.                   1 - mouse form maintained by OS on a per-application
  441.                   basis
  442.         *)
  443.         
  444.         AEMENUS = 9;
  445.         
  446.         (*
  447.         9 - Menu support
  448.  
  449.            ap_gout1 - 0 - submenus not supported
  450.                       1 - MultiTOS style submenus
  451.            ap_gout2 - 0 - popup menus not supported
  452.                   1 - MultiTOS style popup menus
  453.            ap_gout3 - 0 - scrollable menus not supported
  454.                   1 - MultiTOS style scrollable menus
  455.            ap_gout4 - 0 - extended MN_SELECTED not supported
  456.                   1 - words 5/6/7 in MN_SELECTED message give extra info
  457.         *)
  458.         
  459.         AESHELLW    = 10;
  460.  
  461.         (*
  462.         10 - shel_write info
  463.  
  464.            ap_gout1 - shel_write modes supported:
  465.                 bit 0-7: indicates highest legal value for
  466.                     (sh_wdoex & 0x00ff)
  467.                 bit 8-15: indicates which bits in (sh_wdoex & 0xFF00)
  468.                      are supported as in MultiTOS
  469.            ap_gout2 - 0 - shel_write(0) launches an application
  470.                   1 - shel_write(0) cancels previous shel_write
  471.            ap_gout3 - 0 - shel_write(1) launches an application immediately
  472.                   1 - shel_write(1) takes effect after current application
  473.                   exits (like TOS 1.4)
  474.            ap_gout4 - 0 - ARGV parameter passing not possible
  475.                   1 - sh_wiscr controls ARGV parameter passing
  476.         *)
  477.  
  478.         AEWINDOWS   = 11;
  479.         
  480.         (*
  481.         11 - window support
  482.  
  483.            ap_gout1 - extended WF_ functions available in wind_get/set
  484.                   (0=not available, 1=available)
  485.                 bit 0: WF_TOP returns window below current one
  486.                 bit 1: wind_get(WF_NEWDESK) supported
  487.                 bit 2: WF_COLOR get/set supported
  488.                 bit 3: WF_DCOLOR get/set supported
  489.                 bit 4: WF_OWNER supported in wind_get
  490.                 bit 5: WF_BEVENT get/set supported
  491.                 bit 6: WF_BOTTOM supported
  492.                 bit 7: WF_ICONIFY supported
  493.                 bit 8: WF_UNICONIFY supported
  494.                 bits 9-15 reserved, 0
  495.            ap_gout2 - reserved, 0
  496.            ap_gout3 - new gadgets supported:
  497.                   (0=supported, 1=not supported)
  498.                     bit 0: iconifier
  499.                 bit 1: explicit "bottomer" gadget
  500.                 bit 2: shift+click to send window to bottom
  501.                 bit 3: "hot" close box
  502.                 all other bits: reserved, 0
  503.            ap_gout4 - 0 - wind_update check and set not allowed
  504.                   1 - wind_update check and set allowed
  505.         *)
  506.  
  507.         AEMESSAGES  = 12;
  508.         
  509.         (*
  510.         12 - messages sent to applications
  511.  
  512.            ap_gout1 - bit field of extra messages supported (1)
  513.                   (0=no,1=yes)
  514.                 bit 0: WM_NEWTOP message meaningful
  515.                 bit 1: WM_UNTOPPED message sent
  516.                 bit 2: WM_ONTOP message sent
  517.                 bit 3: AP_TERM message sent
  518.                 bit 4: MultiTOS shutdown and resolution change
  519.                        messages supported
  520.                 bit 5: AES sends CH_EXIT
  521.                 bit 6: WM_BOTTOM message sent
  522.                 bit 7: WM_ICONIFY message sent
  523.                 bit 8: WM_UNICONIFY message sent
  524.                 bit 9: WM_ALLICONIFY message sent
  525.            ap_gout2 - bit field of extra messages supported (2)
  526.                 (currently all bits are reserved and 0)
  527.            ap_gout3 - message behaviour
  528.                 bit 0: WM_ICONIFY message gives coordinates (0=no,1=yes)
  529.         *)
  530.         
  531.         AEOBJECTS   = 13;
  532.         
  533.         (*
  534.         13 - object information
  535.  
  536.            ap_gout1 - 0 - no 3D objects
  537.                       1 - 3D objects supported via objc_flags
  538.            ap_gout2 - 0 - objc_sysvar supported
  539.                       1 - MultiTOS 1.01 objc_sysvar
  540.                       2 - extended objc_sysvar
  541.            ap_gout3 - 0 - only system font for TEDINFO structures
  542.                       1 - SPEEDO and GDOS fonts allowed in TEDINFO
  543.            ap_gout4 - reserved for OS extensions (MultiTOS always
  544.                       sets this to 0)
  545.                       suggestion: use this to indicate presence
  546.                       of new object types like radio buttons
  547.         *)
  548.  
  549.         AEFORMS     = 14;
  550.         
  551.         (*
  552.         14 - form library information
  553.  
  554.            ap_gout1 - 0 - no flying dialogs
  555.                       1 - flying dialogs supported
  556.            ap_gout2 - 0 - keyboard tables not supported
  557.                       1 - Mag!X style keyboard tables
  558.            ap_gout3 - 0 - last cursor position not returned
  559.                       1 - last cursor position returned
  560.            ap_gout4 - reserved, 0
  561.          *)
  562.  
  563. PROCEDURE ApplGetinfo (info: sINTEGER; VAR out1, out2, out3, out4 : sINTEGER): sINTEGER;
  564.  
  565. (*-- AES-Evnt --------------------------------------------------------*)
  566.  
  567.  
  568. CONST   KRSHIFT =       Bit0;   (* Tastatur-Status *)
  569.         KLSHIFT =       Bit1;
  570.         KCTRL =         Bit2;
  571.         KALT =          Bit3;
  572.         KCAPS =         Bit4;   (* Fr AES undokumentiert! *)
  573.  
  574.  
  575. PROCEDURE EvntKeybd (VAR taste, scan: sINTEGER; VAR ascii: CHAR);
  576.  
  577. PROCEDURE EvntButton (maxclicks: sINTEGER;
  578.                       mask, state: sBITSET;
  579.                       VAR x, y: sINTEGER;
  580.                       VAR button, kbshift: sBITSET): sINTEGER;
  581.  
  582.  
  583. CONST   EnterRect =     0;
  584.         LeaveRect =     1;
  585.  
  586. PROCEDURE EvntMouse  (mode: sINTEGER;  VAR m1rect: ARRAY OF LOC;
  587.                       VAR x, y: sINTEGER;  VAR button, kbshift: sBITSET);
  588.  
  589.  
  590. CONST   MNSELECTED =    10;    (* Eventmessages *)
  591.         WMREDRAW =      20;
  592.         WMTOPPED =      21;
  593.         WMCLOSED =      22;
  594.         WMFULLED =      23;
  595.         WMARROWED =     24;
  596.         WAUPPAGE =      0;
  597.         WADNPAGE =      1;
  598.         WAUPLINE =      2;
  599.         WADNLINE =      3;
  600.         WALFPAGE =      4;
  601.         WARTPAGE =      5;
  602.         WALFLINE =      6;
  603.         WARTLINE =      7;
  604.         WMHSLID =       25;
  605.         WMVSLID =       26;
  606.         WMSIZED =       27;
  607.         WMMOVED =       28;
  608.         WMNEWTOP =      29;
  609.         WMUNTOPPED =    30;
  610.         ACOPEN =        40;
  611.         ACCLOSE =       41;
  612.         CTUPDATE =      50;
  613.         CTMOVE =        51;
  614.         CTNEWTOP =      52;
  615.         
  616. (* In Mag!X: *)
  617.         WMBDROPPED =   100;
  618.  
  619. (* Ab AES V4.0 *)
  620.      (* WMUNTOPPED =    30; ist schon definiert *)
  621.         WMONTOP =       31;
  622.      
  623.         APTERM =        50;
  624.         APTFAIL =       51;
  625.         APRESCHG =      57;
  626.         SHUTCOMPLETED = 60;
  627.         RESCHCOMPLETED = 61;
  628.         CHEXIT =        90;
  629.  
  630. (* Ab irgendwann *)
  631.         SCCHANGED     = 80;
  632.  
  633.         SCFINDEF   = {};     (* Nichts definiert *)
  634.         SCFDBASE   = Bit0;   (* data to be loaded into a database 
  635.                                 (".DBF", ".CSV", ...)
  636.                               *)
  637.         SCFTEXT    = Bit2;   (* text files
  638.                                 (".TXT", ".ASC", ".RTF", ".DOC", ...)
  639.                               *)
  640.         SCFVECTOR  = Bit3;   (* vector graphics
  641.                                 (".GEM", ".EPS", ".CVG", ".DXF", ...)
  642.                               *)
  643.         SCFRASTER  = Bit4;   (* bitmap graphics
  644.                                 (".IMG", ".TIF", ".GIF", ".PCX", ".IFF", ...)
  645.                               *)
  646.         SCFSHEET   = Bit5;   (* spreadsheet data
  647.                                 (".DIF", ".WKS", ...)
  648.                               *)
  649.         SCFSOUND   = Bit6;   (* samples, MIDI files, sound, ...
  650.                                 (".MOD", ".SND", ...)
  651.                               *)
  652.  
  653.  
  654. (*
  655.  SC_CHANGED-DEFINITION
  656.  
  657. After an application created a new file in the scrap directory or changed
  658. its contents it should send the message SC_CHANGED to all other apps in
  659. the system.
  660. When using old versions of TOS known protocols (XAcc/AV) can be used,
  661. newer versions support appl_search and/or AES broadcast (shel_write(7, ..).
  662. The last method is the recommended one if available.
  663.  
  664. The message looks like:
  665.  
  666.     msg[0] = SC_CHANGED (Suggestion: 80 or 91)
  667.     msg[1] = apID
  668.     msg[2] = 0
  669.     msg[3] = bitmap representing the file format (following)
  670.     msg[4]   4 characters for the "best" format (e.g. ".RTF")
  671.         +  = with the least loss of information
  672.     msg[5]    when importing the data
  673.     msg[6]
  674.         +  = reserved, 0
  675.     msg[7]
  676.  
  677. The following constants characterize the file format. Avoid using
  678. SCF_INDEF whenever you can!
  679.  
  680.     SCF_INDEF  = $0000;
  681.     SCF_DBASE  = $0001;  data to be loaded into a database
  682.                          (".DBF", ".CSV", ...)
  683.     SCF_TEXT   = $0002;  text files
  684.                          (".TXT", ".ASC", ".RTF", ".DOC", ...)
  685.     SCF_VECTOR = $0004;  vector graphics
  686.                          (".GEM", ".EPS", ".CVG", ".DXF", ...)
  687.     SCF_RASTER = $0008;  bitmap graphics
  688.                          (".IMG", ".TIF", ".GIF", ".PCX", ".IFF", ...)
  689.     SCF_SHEET  = $0010;  spreadsheet data
  690.                          (".DIF", ".WKS", ...)
  691.     SCF_SOUND  = $0020;  samples, MIDI files, sound, ...
  692.                          (".MOD", ".SND", ...)
  693.  
  694. After examining this bit vector an application can decide to look for
  695. the data in the scrap path or not. More than one bit can be set when
  696. combined data were stored (e.g. bitmap and vector data in
  697. one file).
  698. There is no reply message to SC_CHANGED.
  699. *)
  700.  
  701. (* Ab AES V4.1 *)
  702.         WMBOTTOMED =    33;
  703.         WMICONIFY =     34;
  704.         WMUNICONIFY =   35;
  705.         WMALLICONIFY =  36;
  706.         WMTOOLBAR =     37;
  707.  
  708. (* Fr Drag & Drop Protokoll in MultiTOS (ab AES V 4.0) *)
  709.         AP_DRAGDROP =   63;
  710.         
  711.         DD_OK =         0;
  712.         DD_NAK =        1;
  713.         DD_EXT =        2;
  714.         DD_LEN =        3;
  715.         DD_TRASH =      4;
  716.         DD_PRINTER =    5;
  717.         DD_CLIPBOARD =  6;
  718.  
  719. (* timeout in milliseconds *)
  720.         DD_TIMEOUT =    4000;
  721.  
  722. (* number of bytes of "preferred
  723.  * extensions" sent by receipient during
  724.  * open
  725.  *)
  726.         DD_NUMEXTS =    8;
  727.         DD_EXTSIZE =    32L;
  728.  
  729. (* max size of a drag&drop item name *)
  730.         DD_NAMEMAX =    128;
  731.  
  732. (* max length of a drag&drop header *)
  733.         DD_HDRMAX =     (8+DD_NAMEMAX);
  734.  
  735. PROCEDURE EvntMesag (VAR buffer: ARRAY OF LOC);
  736.  
  737. PROCEDURE EvntTimer (count: lCARDINAL);
  738.  
  739.  
  740. CONST   MUKEYBD =       Bit0;      (* Event-Typen *)
  741.         MUBUTTON =      Bit1;
  742.         MUM1 =          Bit2;
  743.         MUM2 =          Bit3;
  744.         MUMESAG =       Bit4;
  745.         MUTIMER =       Bit5;
  746.  
  747. PROCEDURE EvntMulti (wich: sBITSET;
  748.                      maxclicks: sINTEGER;
  749.                      mask, state: sBITSET;
  750.                      m1mode: sINTEGER;
  751.                      m1rect: ARRAY OF LOC;
  752.                      m2mode: sINTEGER;
  753.                      m2rect: ARRAY OF LOC;
  754.                      VAR msgBuff: ARRAY OF LOC;
  755.                      loTimer, hiTimer: sINTEGER;
  756.                      VAR x, y: sINTEGER;
  757.                      VAR button: sBITSET;
  758.                      VAR taste: sINTEGER;
  759.                      VAR kbshift: sBITSET;
  760.                      VAR scan: sINTEGER;
  761.                      VAR ascii: CHAR;
  762.                      VAR clicks: sINTEGER): sBITSET;
  763.  
  764. PROCEDURE EvntPmulti (): sBITSET;
  765. (* Gem„ž der Anregung im Profibuch wird dieses zus„tzliche Binding angeboten.
  766.  * Dabei muž man selbst die ben”tigten Parameter in die IntIn- und AddrIn-
  767.  * Array schreiben und nach Aufruf der Funktion auch den IntOut-Array
  768.  * auswerten.  Dieses Vorgehen spart in der Regel Zeit, da die ganzen Para-
  769.  * meter von EvntMulti gar nicht erst auf den Stack gepackt werden mssen.
  770.  *
  771.  * Ein undokumentiertes Feature ist, daž man nicht alle Parameter setzen muž,
  772.  * wenn man nur auf zwei oder drei Events wartet.
  773.  *)
  774.  
  775. PROCEDURE EvntDclicks (new: sINTEGER; set: BOOLEAN): sINTEGER;
  776.  
  777.  
  778. (*-- AES-Form -----------------------------------------------------------*)
  779.  
  780.  
  781. PROCEDURE FormDo (tree: SYSTEM.ADDRESS; start: sINTEGER): sINTEGER;
  782.  
  783.  
  784. CONST   FMDSTART =      0;
  785.         FMDGROW =       1;
  786.         FMDSHRINK =     2;
  787.         FMDFINISH =     3;
  788.  
  789. PROCEDURE FormDial   (flag: sINTEGER; small, big: ARRAY OF LOC);
  790.  
  791. PROCEDURE FormAlert  (button: sINTEGER; string: ARRAY OF CHAR): sINTEGER;
  792.  
  793. PROCEDURE FormError  (errNum: sINTEGER);
  794.  
  795. PROCEDURE FormCenter (tree: SYSTEM.ADDRESS; VAR rect: ARRAY OF LOC);
  796.  
  797. PROCEDURE FormKeybd  (tree: SYSTEM.ADDRESS; object, chin: sINTEGER;
  798.                       VAR nextObj, chout: sINTEGER): sINTEGER;
  799.  
  800. PROCEDURE FormButton (tree: SYSTEM.ADDRESS; object, clicks: sINTEGER; 
  801.                       VAR next: sINTEGER): sINTEGER;
  802.  
  803.  
  804. (*-- AES-FSel -----------------------------------------------------------*)
  805.  
  806. PROCEDURE FselInput   (VAR pfad, name: ARRAY OF CHAR): BOOLEAN;
  807.  
  808. PROCEDURE FselExinput (VAR info, pfad, name: ARRAY OF CHAR): BOOLEAN;
  809.  
  810.  
  811. (*-- AES-Graf -----------------------------------------------------------*)
  812.  
  813.  
  814. PROCEDURE GrafRubberbox (x, y, mw, mh: sINTEGER; VAR lw, lh: sINTEGER);
  815.  
  816. PROCEDURE GrafDragbox   (moving, boundary: ARRAY OF LOC; VAR x, y: sINTEGER);
  817.  
  818. PROCEDURE GrafMovebox   (rect: ARRAY OF LOC; dx, dy: sINTEGER);
  819.  
  820. PROCEDURE GrafGrowbox   (source, dest: ARRAY OF LOC);
  821.  
  822. PROCEDURE GrafShrinkbox (source, dest: ARRAY OF LOC);
  823.  
  824. PROCEDURE GrafWatchbox  (tree: SYSTEM.ADDRESS; item: sINTEGER;
  825.                          in, out: sBITSET): sINTEGER;
  826.  
  827. CONST   Horizontal =    0;
  828.         Vertical =      1;
  829.  
  830. PROCEDURE GrafSlidebox (tree: SYSTEM.ADDRESS; parent, object: sINTEGER; 
  831.                         dir: sINTEGER): sINTEGER;
  832.  
  833. PROCEDURE GrafHandle (VAR handle, wCh, hCh, wbox, hbox: sINTEGER);
  834.  
  835. CONST   ARROW =         0;
  836.         TEXTCRSR =      1;
  837.         BUSYBEE =       2;
  838.         POINTHAND =     3;
  839.         FLATHAND =      4;
  840.         THINCROSS =     5;
  841.         THICKCROSS =    6;
  842.         OUTLCROSS =     7;
  843.         USERDEF =     255;
  844.         MOFF =        256;
  845.         MON =         257;
  846.  
  847. PROCEDURE GrafMouse   (form: sINTEGER; user: SYSTEM.ADDRESS);
  848.  
  849. PROCEDURE GrafMkstate (VAR x, y: sINTEGER; VAR button, kbshift: sBITSET);
  850.  
  851.  
  852. (*-- AES-Menu -----------------------------------------------------------*)
  853.  
  854. CONST   Reset = 0;
  855.         Set   = 1;
  856.         Ask   = -1;
  857.  
  858. PROCEDURE MenuBar        (tree: SYSTEM.ADDRESS; action: sINTEGER) : sINTEGER;
  859.  
  860. PROCEDURE MenuIcheck     (tree: SYSTEM.ADDRESS; item, action: sINTEGER);
  861.  
  862. PROCEDURE MenuIenable    (tree: SYSTEM.ADDRESS; item, action: sINTEGER);
  863.  
  864. PROCEDURE MenuTnormal    (tree: SYSTEM.ADDRESS; item, action: sINTEGER);
  865. (* Aus welchen Grnden auch immer: Bei action sind reset und set vertauscht *)
  866.  
  867. PROCEDURE MenuText       (tree: SYSTEM.ADDRESS; item: sINTEGER; str: ARRAY OF CHAR);
  868.  
  869. PROCEDURE MenuRegister   (apid: sINTEGER; VAR str: ARRAY OF CHAR) : sINTEGER;
  870. (* 2.01: Muž VAR-Parameter sein, da sonst der String nicht im Men gesetzt
  871.  * werden kann!
  872.  *)
  873.  
  874. PROCEDURE MenuUnregister (apid: sINTEGER);
  875.  
  876. (* Ab AES V 4.0: *)
  877.  
  878. TYPE    MENU    = RECORD
  879.                     tree:   SYSTEM.ADDRESS;    (* object tree pointer *)
  880.                     menu:   sINTEGER;   (* parent object of menu items *)
  881.                     item:   sINTEGER;   (* starting menu item *)
  882.                     scroll: sINTEGER;   (* scroll field status of the menu *)
  883.                     kstate: sBITSET;    (* The CTRL, ALT, SHIFT Key state at the  
  884.                                          * time the mouse button was pressed
  885.                                          *)
  886.                   END;
  887.     MenuSetting = RECORD
  888.                     Display:    lINTEGER;   (* the submenu display delay *)
  889.                     Drag:       lINTEGER;   (* the submenu drag delay *)
  890.                     Delay:      lINTEGER;   (* the single-click scroll delay *)
  891.                     Speed:      lINTEGER;   (* the continuous scroll delay *)
  892.                     Height:     sINTEGER;   (* the menu scroll height *)
  893.                   END;
  894.  
  895. PROCEDURE MenuPopup (VAR meMenu: MENU; meXpos, meYpos : sINTEGER; 
  896.                      VAR meMData: MENU): sINTEGER;
  897.  
  898. PROCEDURE MenuAttach (flag: sINTEGER; tree: SYSTEM.ADDRESS; item: sINTEGER;
  899.                       VAR meMData : MENU): sINTEGER;
  900.  
  901. PROCEDURE MenuIstart (flag: sINTEGER; tree: SYSTEM.ADDRESS; imenu, item : sINTEGER): sINTEGER;
  902.  
  903. PROCEDURE MenuSettings (flag: sINTEGER; VAR values: MenuSetting): sINTEGER;
  904.  
  905. (*-- AES-Rsrc -----------------------------------------------------------*)
  906.  
  907. PROCEDURE RsrcLoad (name: ARRAY OF CHAR): BOOLEAN;
  908.  
  909. PROCEDURE RsrcFree;
  910.  
  911. CONST   RTREE =         0;
  912.         ROBJECT =       1;
  913.         RTEDINFO =      2;
  914.         RICONBLK =      3;
  915.         RBITBLK =       4;
  916.         RSTRING =       5;
  917.         RIMAGEDATA =    6;
  918.         ROBSPEC =       7;
  919.         RTEPTEXT =      8;
  920.         RTEPTMPLT =     9;
  921.         RTEPVALID =     10;
  922.         RIBPMASK =      11;
  923.         RIBPDATA =      12;
  924.         RIBPTEXT =      13;
  925.         RBIDATA =       14;
  926.         RFRSTR =        15;
  927.         RFRIMG =        16;
  928.  
  929. PROCEDURE RsrcGaddr (type, item: sINTEGER): SYSTEM.ADDRESS;
  930.  
  931. PROCEDURE RsrcSaddr (type, item: sINTEGER; tree: SYSTEM.ADDRESS);
  932.  
  933. PROCEDURE RsrcObfix (tree: SYSTEM.ADDRESS; object: sINTEGER);
  934.  
  935. PROCEDURE RsrcRcfix (rsrc: SYSTEM.ADDRESS);
  936.  
  937.  
  938. (*-- AES-Scrp -----------------------------------------------------------*)
  939.  
  940. CONST   scCSV =         Bit0;
  941.         scTXT =         Bit1;
  942.         scGEM =         Bit2;
  943.         scIMG =         Bit3;
  944.         scDCA =         Bit4;
  945.         scUSR =         Bit5;
  946.  
  947. PROCEDURE ScrpRead  (VAR pfad: ARRAY OF CHAR): sBITSET;
  948. (* Funktioniert nicht auf die beschriebene Art mit dem ST/E/TT GEM *)
  949.  
  950. PROCEDURE ScrpWrite (pfad: ARRAY OF CHAR);
  951.  
  952. PROCEDURE ScrpClear; 
  953.  
  954.  
  955. (*-- AES-Shel -----------------------------------------------------------*)
  956.  
  957. PROCEDURE ShelRead (VAR command, path: ARRAY OF CHAR);
  958.  
  959. CONST   NoProg =        0;
  960.         NewProg =       1;
  961.  
  962. CONST   NoGraphic =     0;
  963.         Graphic =       1;
  964.  
  965. CONST   Now =           0;
  966.         End =           1;
  967.  
  968.  
  969. PROCEDURE ShelWrite (exec, appl, start: sINTEGER; command, path: ARRAY OF CHAR): sINTEGER;
  970.  
  971. CONST
  972.         (* Ab AES V4.0 *)
  973.         NewApp =           1;
  974.         NewAcc =           3;
  975.         ExecShutdown =     4;
  976.         RequestResChange = 5;
  977.         BroadcastMessage = 7;
  978.         AESEnvironment =   8;
  979.         InformAES =        9;
  980.         SendMsgToAES =     10;
  981.  
  982. (* Bits fr extended modes in AES V4.0 (high byte of exec), mode 1 *)
  983. CONST   PsetLimit =     8;
  984.         Prenice =       9;
  985.         DefaultDir =   10;
  986.         Environment =  11;
  987.  
  988. (* Bits fr die Messages, die die Application versteht *)
  989. CONST   ApTermBit        = 0;
  990.  
  991. CONST   NoShutdown       = 0;
  992.         PartialShutdown  = 1;
  993.         CompleteShutdown = 2;
  994.  
  995. CONST   InquireEnvSize   = 0;
  996.         ChangeEnv        = 1;
  997.         CopyEnv          = 2;
  998.  
  999. CONST
  1000.         (* Ab AES V4.0 *)
  1001.         DoNoArgv =      0;
  1002.         DoArgv =        1;
  1003.  
  1004. PROCEDURE ExtShelWrite (mode, appl, start: sINTEGER; command : SYSTEM.ADDRESS; path: ARRAY OF CHAR) : sINTEGER;
  1005.  
  1006. PROCEDURE ShelGet   (len: sINTEGER; VAR buffer: ARRAY OF LOC) : sINTEGER;
  1007. (* Ab AES V 4.0: Gibt L„nge des Buffers zurck *)
  1008.  
  1009. PROCEDURE ShelPut   (len: sINTEGER; VAR buffer: ARRAY OF LOC);
  1010.  
  1011. PROCEDURE ShelFind  (VAR name: ARRAY OF CHAR);
  1012.  
  1013. PROCEDURE ShelEnvrn (VAR param: ARRAY OF CHAR; name: ARRAY OF CHAR);
  1014.  
  1015. PROCEDURE ShelRdef  (command, path: ARRAY OF CHAR);
  1016.  
  1017. PROCEDURE ShelWdef  (command, path: ARRAY OF CHAR);
  1018.  
  1019.  
  1020. (*-- AES-Wind -----------------------------------------------------------*)
  1021.  
  1022. CONST   NAME =          Bit0;
  1023.         CLOSER =        Bit1;
  1024.         FULL =          Bit2;
  1025.         MOVE =          Bit3;
  1026.         INFO =          Bit4;
  1027.         Size =          Bit5;   (* SIZE ist reserviertes Wort *)
  1028.         UPARROW =       Bit6;
  1029.         DNARROW =       Bit7;
  1030.         VSLIDE =        Bit8;
  1031.         LFARROW =       Bit9;
  1032.         RTARROW =       Bit10;
  1033.         HSLIDE =        Bit11;
  1034.         HOTCLOSEBOX =   Bit12;  (* Was immer das auch ist... *)
  1035.         BACKDROP =      Bit13;  (* Backdrop-Button unter Mag!X *)
  1036.         SMALLER =       Bit14;  (* Iconify-Gadget *)
  1037.  
  1038. PROCEDURE WindCreate (comp: sBITSET; size: ARRAY OF LOC): sINTEGER;
  1039.  
  1040. PROCEDURE WindOpen   (handle: sINTEGER; size: ARRAY OF LOC);
  1041.  
  1042. PROCEDURE WindClose  (handle: sINTEGER);
  1043.  
  1044. PROCEDURE WindDelete (handle: sINTEGER);
  1045.  
  1046. CONST   WFRESVD1 =      1;
  1047.         WFNAME =        2;
  1048.         WFINFO =        3;
  1049.         WFWORKXYWH =    4;
  1050.         WFCURRXYWH =    5;
  1051.         WFPREVXYWH =    6;
  1052.         WFFULLXYWH =    7;
  1053.         WFHSLIDE =      8;
  1054.         WFVSLIDE =      9;
  1055.         WFTOP =         10;
  1056.         WFFIRSTXYWH =   11;
  1057.         WFNEXTXYWH =    12;
  1058.         WFRESVD13 =     13;
  1059.         WFNEWDESK =     14;
  1060.         WFHSLSIZE =     15;
  1061.         WFVSLSIZE =     16;
  1062.         WFSCREEN =      17;
  1063.         WFATTRIB =      18;
  1064.         WFSIZTOP =      19;
  1065.  
  1066. (* Ab AES V4.0 *)
  1067.         WFCOLOR =       18;
  1068.         WFDCOLOR =      19;
  1069.         WFOWNER =       20;
  1070.         WFBEVENT =      24;
  1071.         WFBOTTOM =      25;
  1072.  
  1073. (* Ab AES V4.1 *)
  1074.         WFICONIFY =     26;
  1075.         WFUNICONIFY =   27;
  1076.         WFUNICONIFYXYWH = 28;
  1077.         
  1078.         WFTOOLBAR =     30;
  1079.         WFFTOOLBAR =    31;
  1080.         WFNTOOLBAR =    32;
  1081.  
  1082. (* Mag!X-spezifisch *)
  1083.         WFMBACKDROP =   100;
  1084.  
  1085. (* Ab AES V3.2 (TOS 2.0x, 3.0x) *)
  1086.         WBOX =           0;  (* IBOX      window parent object *)
  1087.         WTITLE =         1;  (* BOX       parent of closer, namer, fuller *)
  1088.         WCLOSER =        2;  (* BOXCHAR   close box *)
  1089.         WNAME =          3;  (* BOXTEXT   mover bar *)
  1090.         WFULLER =        4;  (* BOXCHAR   full box  *)
  1091.         WINFO =          5;  (* BOXTEXT   info line *)
  1092.         WDATA =          6;  (* IBOX      holds remaining window elements *)
  1093.         WWORK =          7;  (* IBOX      application work area *)
  1094.         WSIZER =         8;  (* BOXCHAR   sizer box *)
  1095.         WVBAR =          9;  (* BOX       holds vertical slider elements *)
  1096.         WUPARROW =       10; (* BOXCHAR   vert. slider up arrow *)
  1097.         WDNARROW =       11; (* BOXCHAR   vert. slider down arrow *)
  1098.         WVSLIDE =        12; (* BOX       vert. slider background *)
  1099.         WVELEV =         13; (* BOX       vert. slider thumb/elevator *)
  1100.         WHBAR =          14; (* BOX       holds horizontal slider elements *)
  1101.         WLFARROW =       15; (* BOXCHAR   horz. slider left arrow *)
  1102.         WRTARROW =       16; (* BOXCHAR   horz. slider right arrow *)
  1103.         WHSLIDE =        17; (* BOX       horz. slider background *)
  1104.         WHELEV =         18; (* BOX       horz. slider thumb/elevator *)
  1105.         
  1106. PROCEDURE WindGet  (handle, typ: sINTEGER; VAR para: ARRAY OF LOC);
  1107.  
  1108. PROCEDURE WindSet  (handle, typ: sINTEGER; para: ARRAY OF LOC);
  1109.  
  1110. PROCEDURE WindFind (x, y: sINTEGER): sINTEGER;
  1111.  
  1112. CONST   ENDUPDATE =     0;
  1113.         BEGUPDATE =     1;
  1114.         ENDMCTRL =      2;
  1115.         BEGMCTRL =      3;
  1116.         BEGCHKUPDATE =  257;
  1117.         BEGCHKMCTRL =   259;
  1118.  
  1119. PROCEDURE WindUpdate (mode: sINTEGER);
  1120.  
  1121. CONST   WCBORDER =      0;
  1122.         WCWORK =        1;
  1123.  
  1124. PROCEDURE WindCalc   (mode: sINTEGER; comp: sBITSET; VAR in, out: ARRAY OF LOC);
  1125.  
  1126. PROCEDURE WindNew;
  1127.  
  1128.  
  1129. (*--- AES-XGraf ---------------------------------------------------------*)
  1130.  
  1131. PROCEDURE XgrfStepcalc (ow, oh, x, y, w, h: sINTEGER;
  1132.                         VAR cx, cy, count, xstep, ystep: sINTEGER);
  1133.  
  1134. PROCEDURE Xgrf2box (xc, yc, wc, hc, corners, count, xstep, ystep, doubled: sINTEGER);
  1135.  
  1136. PROCEDURE InitAES;
  1137. (* Init-Prozedur. Wird im Modulk”rper ausgefhrt, und braucht nicht weiter
  1138.  * beachtet werden.
  1139.  *)
  1140.  
  1141. END MagicAES.
  1142.  
  1143.